With the proliferation of voice over data network technology has come the deployment of numerous voice coding and compression algorithms. Examples of these voice coding and compression algorithms include G.723, Global System for Mobil Communication (GSM), Pulse Code Modulation (PCM), G.711, and Adaptive Differential Pulse Code Modulation (ADPCM). G.723, PCM, G.711, and ADPCM are protocols which are defined by the International Telecommunications Union (ITU), and are well known to those reasonably skilled in the art. GSM is a protocol defined by European Telecommunication Standards Institute and is also well known to those reasonably skilled in the art. These protocols seek to compress and/or code a voice signal into an optimal number of bits for transmission over a data network, attempting to balance quality of service with affordability.
Protocols currently exist which allow two users on the same local access network, for example, to set up an optimal connection. A telephony feature server (TFS) may determine the coding abilities of each of the clients and find the best choice for the connection. However, when users are on a wide area network (WAN), separate local area networks (LANs), or there are intermediate public network connections, the ability to perform optimal connection negotiation on a system wide basis is typically lost. When users are part of such systems, it can result in multiple coding and compression algorithms used throughout a connection, resulting in gross distortion and loss of voice quality. The resulting signal distortion and loss of quality typically make the circuit unsuitable for fax or computer modem connection. Further, a call is often connected to a voice mail system, using an entirely different coding algorithm from a live call, which can further add to the resulting distortion.
For example, assume a telephony over LAN (TOL) system in which a caller making a call has several compression options. In this example, assume that a call from the caller is set up using a compression algorithm defined by G.723. Assume also that the caller is connected to an Ethernet LAN, which has a TOL gateway X. The call may be received by gateway X and converted to pulse code modulation (PCM) coding. From gateway X to a second gateway, gateway Y, the call is transmitted in PCM coding. Assume also that the call receiver is connected to gateway Y and that the receiver only has GSM capabilities currently available. Accordingly, the call is then converted from PCM coding to GSM coding.
Typically, there may be multiple compression coding options that may be selected for use between the caller and gateway X. However, the coding selection is typically only an educated guess since there is typically no prior knowledge of the capabilities of the receiver. In this example, the voice compression of G.723 introduces a first distortion. When the coded G.723 voice arrives at gateway X, it is then converted to PCM voice. At this point, a second distortion is introduced due to the G.723 decompression and PCM coding. When the PCM voice arrives at gateway Y, gateway Y negotiates with the call receiver and determines that GSM is the only option. Accordingly, a third distortion is introduced when the connection is made to the call receiver using GSM. It is not necessarily the severity of the individual compressions, but the transcoding back and forth and back again to different compression methods that typically causes unnecessary signal distortion.
The resulting signal in this example is substantially more distorted than a signal produced by a single family of coding algorithms. The various conversions produced a suboptimal series of events on a system wide basis, even though each point-to-point decision may have been optimal. It would be desirable to produce a series of connections which optimizes overall quality of the transmission from the sender to the receiver. The present invention addresses such a need.